#include "Key.h"

volatile Direction KeyDirect = RIGHT;
volatile uint8_t Flag = 0;

void Key::Key_Init()
{
	__HAL_RCC_GPIOB_CLK_ENABLE();
	
	GPIO_InitTypeDef	GPIO_InitStruct = {0};

  GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /* EXTI interrupt init*/
  HAL_NVIC_SetPriority(EXTI15_10_IRQn, 10, 0);
  HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
	
}



void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	
	if(GPIO_Pin == GPIO_PIN_10)
	{
		KeyDirect = UP;
	}
	else if(GPIO_Pin == GPIO_PIN_11)
	{
		KeyDirect = DOWN;
	}
	else if(GPIO_Pin == GPIO_PIN_12)
	{
		KeyDirect = LEFT;
	}
	else if(GPIO_Pin == GPIO_PIN_13)
	{
		KeyDirect = RIGHT;
	}

	Flag = 1;

}